The present invention relates to network resource management, and more specifically, to virtual appliance chaining and management.
A virtual appliance is a mechanism by which software services may be deployed in a virtualized server environment. Each software service is typically bundled with an operating system to construct a software bundle called the virtual appliance. Typically, a single software service may be bundled into a virtual appliance for deployment.
In conventional deployment schemes, a hypervisor may manage multiple virtual machines. The hypervisor may send service related packets to each virtual machine. Typically, the hypervisor sends a single virtual appliance at a time to a virtual machine for execution of the service bundled in the appliance. Once the service related action is performed, a packet reply is returned to the hypervisor with modifications to the context of the service and the process of sending and reply continues for each service needed by the virtual machine.
In a server with multiple virtual machines, packet latency may build up as a result of the multiple packet exchanges and changes in service context within packets. In virtual machines requiring multiple services, management of the different services may require separate control from separate consoles. In addition, each virtual appliance may use its own set of resources. For example, a virtual appliance may incur separate log files, output and results files, configuration files, infrastructure libraries and, operating system abstraction calls. This may contribute increased resource needs within the environment. In addition, in heterogeneous virtual appliance, an administrator may need to debug various incompatible service instructions between appliances.